package com.ruoyi.service.jpjs.concrete;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.domain.jpjs.common.concrete.Concrete;

import java.util.List;
import java.util.Map;

/**
 * @author C.fw
 * @explain 混凝土报表业务层
 * @since 2020/8/15 15:43
 */
public interface ConcreteService {

    /**
     * 根据筛选条件获取混凝土填报概要信息
     * @param map
     * @return
     */
    List<Concrete> selectConcreteList(Map<String, Object> map);

    /**
     * 获取 工程公司>项目名称 tree数据
     * @return
     */
    List<Ztree> getProgramTree();

    /**
     * 获取 工程公司>项目名称
     * @return
     */
    List<Map<String, Object>> getProgramNameList();

    /**
     * 根据工程公司和项目名称获取楼号
     * @param map
     * @return 结果
     */
    List<Map<String, Object>> selectBuildingNumberList(Map<String, Object> map);

    /**
     * 批量新增混凝土报表信息
     *
     * @param concreteList 混凝土报表信息
     * @return 新增条数
     */
    public int insertConcreteBatches(List<Concrete> concreteList);

    /**
     * 批量删除报表信息
     * @param checkId 主键id
     * @return 响应条数
     */
    public int deleteUserBycheckId(String checkId);

    /**
     * 更新混凝土报表
     * @param concrete 混凝土报表实体类
     * @return 结果
     */
    public int updateConcreteById(Concrete concrete);

    /**
     * 查询详情信息
     * @param map
     * @return
     */
    List<Map<String, Object>> selectConcreteDetailList(Map<String, Object> map);

    /**
     * 校验校验工程公司，项目名称，工程部位，结构部位，设计标号唯一性
     * @param concrete 混凝土报表信息
     * @return 结果
     */
    List<Concrete> checkConcreteUnique(Concrete concrete);

    /**
     * 根据用户ID,获取用户项目id集合
     * @param userId 用户ID
     * @return 项目集合
     */
    List<String> selectProIdListByUserId(Long userId);
}
